package demo3;

public class Text07 {
    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            // 通过线程对象内部维护的中断标识，判断当前线程是否需要中断
            while (!Thread.currentThread().isInterrupted()) {
                // 线程中具体的任务是打印一句话
                System.out.println("hello thread...");

                // 线程大部分时间在sleep
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                    // 休眠被中断
                    System.out.println("休眠被中断...");
                    // 处理中断逻辑
                    break;
                }
            }
            System.out.println("线程退出...");
        });

        System.out.println("启动之前查看线程是否存活：" + thread.isAlive());

        // 启动线程
        thread.start();
        // 休眠一会
        Thread.sleep(1000);

        System.out.println("启动之后查看线程是否存活：" + thread.isAlive());

        // 中断线程，发出中断信号
        thread.interrupt();
        // 等待线程销毁
        Thread.sleep(1000);
        // 查看线程是否存活
        System.out.println("线程结束之后查看线程是否存活：" + thread.isAlive());
    }
}
